package eSchool.DataLayer;

import eSchool.BL.CriteriosPesquisa;
import eSchool.BL.GrupoUtilizadores;
import eSchool.BL.GruposUtilizadores;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class AccessGrupoUtilizadoresDAO  implements IGrupoUtilizadoresDAO{
    
     private Connection connection = null;
    
    public AccessGrupoUtilizadoresDAO()        
    {
    }

    public int insertGrupoUtilizadores(GrupoUtilizadores grupo) throws Exception {
//        Connection con = connection;
        int resultado = -1;
//
//        if (con == null) {
//            con = AccessDAOFactory.createConnection();
//        }
//
//        String sqlIns = "Insert into DocFunc ( idDocFunc, nomeDocFunc, moradaDocFunc, codPostalDocFunc, localidadeDocFunc, sexoDocFunc, emailDocFunc, telefoneDocFunc, obsDocFunc, utilizador, palavraChave, idTipoDocFunc)";
//        sqlIns += " values (?,?,?,?,?,?,?,?,?,?,?,?)";
//        PreparedStatement pst = con.prepareStatement(sqlIns);
//        pst.setInt(1, funcionario.getIdFuncionario());
//        pst.setString(2, funcionario.getNome());
//        pst.setString(3, funcionario.getMorada());
//        pst.setString(4, funcionario.getCodPostal());
//        pst.setString(5, funcionario.getLocalidade());
//        pst.setString(6, funcionario.getSexo());
//        pst.setString(7, funcionario.getEmail());
//        pst.setString(8, funcionario.getTelefone());
//        pst.setString(9, funcionario.getObs());
//        pst.setString(10, funcionario.getUtilizador());
//        pst.setString(11, funcionario.getPassword());        
//        pst.setInt(12, 2);   // O idTipoDocFunc é 1 para Docente e 2 para Funcionario      
//        
//        resultado = pst.executeUpdate();
//
//        if (connection == null) {
//            con.close();
//            con = null;
//        }
//
        return resultado;
    }

    public boolean deleteGrupoUtilizadores(GrupoUtilizadores grupo) throws Exception {
        // Implement delete customer here
        // Return true on success, false on failure
        return true;
    }

    public boolean updateGrupoUtilizadores(GrupoUtilizadores grupo) throws Exception {
//        Connection con = connection;
//
//        if (con == null) {
//            con = AccessDAOFactory.createConnection();
//        }
//
//        String sqlUpd = " Update DocFunc SET  " +
//                " nomeDocFunc = ?, " +
//                " codPostalDocFunc = ?, " +
//                " codPostalDocFunc = ?, " +
//                " localidadeDocFunc = ?, " +
//                " sexoDocFunc = ?, " +
//                " sexoDocFunc = ?, " +
//                " telefoneDocFunc = ?, " +
//                " obsDocFunc = ?, " +
//                " utilizador = ?, " +
//                " palavraChave = ? " +
//                " WHERE idDocFunc = ?";
//
//        PreparedStatement pst = con.prepareStatement(sqlUpd);
//        pst.setString(1, funcionario.getNome());
//        pst.setString(2, funcionario.getMorada());
//        pst.setString(3, funcionario.getCodPostal());
//        pst.setString(4, funcionario.getLocalidade());
//        pst.setString(5, funcionario.getSexo());
//        pst.setString(6, funcionario.getEmail());
//        pst.setString(7, funcionario.getTelefone());
//        pst.setString(8, funcionario.getObs());     
//        pst.setString(9, funcionario.getUtilizador());     
//        pst.setString(10, funcionario.getPassword());     
//        pst.setInt(11, funcionario.getIdFuncionario());        
//
//        pst.executeUpdate();
//
//        if (connection == null) {
//            con.close();
//            con = null;
//        }

        return true;
    }

    public GruposUtilizadores selectGrupoUtilizadoresTO(CriteriosPesquisa criterios) throws Exception {

        GruposUtilizadores grupos = new GruposUtilizadores();
        
        return selectGrupoUtilizadoresTO(grupos, criterios);

    }
    
    public GruposUtilizadores selectGrupoUtilizadoresTO(GruposUtilizadores grupos, CriteriosPesquisa criterio) throws Exception {
       Connection con = connection;
        GrupoUtilizadores grupo = null;
     
//        if (con == null) {
//            con = AccessDAOFactory.createConnection();
//        }
//
//        String sqlSlct = " SELECT idDocFunc, nomeDocFunc, moradaDocFunc, codPostalDocFunc, localidadeDocFunc, sexoDocFunc, emailDocFunc, telefoneDocFunc, obsDocFunc,  utilizador, palavraChave, idTipoDocFunc " +
//                                         " FROM DocFunc" +
//                                         " WHERE idTipoDocFunc = 2";
//
//        PreparedStatement pst = con.prepareStatement(sqlSlct);
//        
//        ResultSet rs = pst.executeQuery();
//        
//        while (rs.next()) {
//            funcionario = new Funcionario();
//            funcionario.setIdFuncionario(rs.getInt("idDocFunc"));
//            funcionario.setNome(rs.getString("nomeDocFunc"));
//            funcionario.setMorada(rs.getString("moradaDocFunc"));
//            funcionario.setCodPostal(rs.getString("codPostalDocFunc"));
//            funcionario.setLocalidade(rs.getString("localidadeDocFunc"));
//            funcionario.setSexo(rs.getString("sexoDocFunc"));
//            funcionario.setEmail(rs.getString("emailDocFunc"));
//            funcionario.setTelefone(rs.getString("telefoneDocFunc"));            
//            funcionario.setObs(rs.getString("obsDocFunc")); 
//            funcionario.setUtilizador(rs.getString("utilizador"));
//            funcionario.setPassword(rs.getString("palavraChave"));
//            funcionarios.add(funcionario);
//        }
//        
//        rs.close();
//                
//        if (connection == null) {
//            con.close();
//            con = null;
//        }
//        
        return grupos;
    }

    public GrupoUtilizadores findGrupoUtilizadores(String codGrupo) throws Exception {
        
        GrupoUtilizadores grupo = null;
        
        return findGrupoUtilizadores(grupo, codGrupo);
        
    }
    
    public GrupoUtilizadores findGrupoUtilizadores(GrupoUtilizadores grupo, String codGrupo) throws Exception {
        Connection con = connection;
        
        if (con == null) {
            con = AccessDAOFactory.createConnection();
        }

//        String sqlSlct = " SELECT idDocFunc, nomeDocFunc, moradaDocFunc, codPostalDocFunc, localidadeDocFunc, sexoDocFunc, emailDocFunc, telefoneDocFunc, obsDocFunc, utilizador, palavraChave, idTipoDocFunc " +
//                " From DocFunc" +
//                " WHERE idDocFunc = ?";
//
//        PreparedStatement pst = con.prepareStatement(sqlSlct);
//        pst.setInt(1, idFuncionario);
//
//        ResultSet rs = pst.executeQuery();
//        
//         while (rs.next()) {
//            funcionario = new Funcionario();
//            funcionario.setIdFuncionario(rs.getInt("idDocFunc"));
//            funcionario.setNome(rs.getString("nomeDocFunc"));
//            funcionario.setMorada(rs.getString("moradaDocFunc"));
//            funcionario.setCodPostal(rs.getString("codPostalDocFunc"));
//            funcionario.setLocalidade(rs.getString("localidadeDocFunc"));           
//            funcionario.setSexo(rs.getString("sexoDocFunc"));
//            funcionario.setEmail(rs.getString("emailDocFunc"));
//            funcionario.setTelefone(rs.getString("telefoneDocFunc"));
//            funcionario.setObs(rs.getString("obsDocFunc")); 
//            funcionario.setUtilizador(rs.getString("utilizador"));
//            funcionario.setPassword(rs.getString("palavraChave"));
//        }
//
//        if (connection == null) {
//            con.close();
//            con = null;
//        }
        
        return grupo;
    }

}

